package com.example.spring.bean.load09inject;

import org.springframework.context.annotation.*;

/**
 *
 * <p> @PropertySource注解,把配置文件加载到环境变量中
 * <p>
 */
@PropertySource(value = {"classpath:test.properties"})
@Configuration
@ComponentScan(basePackages = {"com.example.spring.bean.load09inject"})
public class InitConfig {

    @Bean
    Mail mail() {
        return new Mail();
    }

    @Bean
    Mail mail2() {
        Mail mail = new Mail();
        //此处是创建一个对象，  但是此时没有注入到容器中，
        // 等待注入到容器时，创建bean实例会进行初始化，然后使用@value注解进行赋值,把原值覆盖
        //所以 mail2对象的name属性还是@Value给的值
        mail.setName("mail2");

        //from属性没有@Value重新赋值，所以还是原值
        mail.setFrom("mail2@mail.com");
        return mail;
    }
}
